<?php

namespace app\admin\controller;

use think\Controller;
use think\Db;
use think\Request;

class User extends AdminController
{
	public function index()
	{
		$query = Db::field('u.id, u.username, u.name, r.rid')
			->name('user')
			->alias('u')
			->join('lamp_user_role r','u.id = r.uid')
			->buildSql();

		$data = Db::field("s.id, s.username, s.name, group_concat(r.name) rname")
			->table($query)
			->alias('s')
			->join('lamp_role r', 's.rid = r.id')
			->group('s.id')
			->paginate(10);
		return view('admin@user/index', ['data' => $data]);
	}


	public function delete($id)
	{
		$result = Db::name('user')->delete($id);
		$res = Db::name('user_role')->where(['uid'=>$id])->delete();
		if ($res > 0 && $result > 0) {
			$info['status'] = true;
			$info['id'] = $id;
			$info['info'] = 'ID为' . $id . '的用户删除成功!';
		} else {
			$info['status'] = false;
			$info['id'] = $id;
			$info['info'] = 'ID为' . $id . '的用户删除失败!';
		}
		// JSON 返回
		return json($info);
	}


	// 加载分配角色页面
	public function fenp($id)
	{
		// 用户名
		$one = Db::field('id, username')
			->name('user')
			->where('id', 'eq', $id)
			->find();
		// dump($one);

		// 查询角色信息
		$query = Db::name('role')->select();
		// 获取当前用户的角色信息
		$data = Db::name('user_role')->where('uid', 'eq', $id)->select();

		$myrole = array();
		foreach ($data as $key => $value) {
			$myrole[] = $value['rid'];
		}
		// dump($myrole);die;
		//分配数据
		$this->assign("list",$one);
		//分配当前用户信息
		$this->assign('users',$query);
		//分配该用户的角色信息
		$this->assign('role',$myrole);
		return view();
	}


	public function update()
	{
		if(empty(input('post.role/a'))){
			$this->error("请选择一个角色！");
		}

		$uid = input('post.uid');
		$a = Db::name('user_role')
			->where('uid', 'eq', $uid)
			->delete();
		// dump(input('post.role/a'));
		foreach(input('post.role/a') as $k=>$v) {
			$data['uid'] = $uid;
			$data['rid'] = $v;
			$req = Db::name('user_role')->insert($data);
		}
		if($a&&$req) {
			$this->success('分配成功', 'admin/user/index');
		} else {
			$this->error('添加失败');
		}
	}


	// 加载注册页
	public function add()
	{
		return view('admin@user/add');
	}


	// 执行注册
	public function zc()
	{
		// 获取post数据
		$data = input('post.');
		// var_dump($data);die;
		// 判断data中uerpass和reuserpass是否相同
		if ($data['userpass'] !== $data['reuserpass']) {
			$this->error('添加失败', 'admin/user/fun2');
		}
		unset($data['reuserpass']);
		$data['userpass'] = MD5($data['userpass']);
		// var_dump($data);die;
		$query = Db::name('user')->insertGetId($data);
		// var_dump($query);die;
		$arr = array();
		$arr['uid'] = $query;
		$arr['rid'] = 7;
		// var_dump($arr);die;

		if ($query > 0) {
			$req = DB::name('user_role')->insert($arr);
		}

		if($query&&$req) {
			$this->success('添加成功', 'admin/user/index');
		} else {
			$this->error('请稍后再试');
		}
	}


	//加载修改页面
	public function edit()
	{
		$id = input('get.id');
		//查出数据
		$data = Db::name('user')->where('id', 'eq', $id)->find();
		// dump($data);
		return view('admin@user/edit',['data'=>$data]);
	}


	// 执行修改操作
	public function save()
	{
		$data = input('post.');
		$id = input('post.id');
		// dump($data);die;
		$req = Db::name('user')->where('id', $id)->update($data);
		if($req) {
			$this->success('修改成功', 'admin/user/index');
		} else {
			$this->error('请稍后再试');
		}
	}


}